package cn.edu.imau.zy.common.core.entity.student;

import cn.edu.imau.zy.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 学生请假对象 st_leave
 * 
 * @author wyz
 * @date 2020-07-01
 */
@Data
@ToString
public class StLeaveBusinessDTO extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 请假类型 */
    private String type;

    /** 开始时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startDate;

    /** 结束时间 */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    /** 时长(小时) */
    private Double duration;

    /** 事由 */
    private String description;

    /** 联系人电话 */
    private String contacts;

    /** 请假人姓名 */
    private String userName;

    /**
     * 是否核实
     */
    private Boolean verify;

    /**
     * 是否销假
     */
    private Boolean releave;

    /**
     * 销假时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime releaveTime;

    /** 图片证明 */
    private String proofPicture;

    private String            title;

    private Long              userId;

    private String            tableId;

    private String            procDefId;

    private String            procDefKey;

    private String            procInstId;

    // 流程名称
    private String            procName;

    // 当前任务节点名称
    private String            currentTask;

    private String            applyer;

    private Integer           status;

    private Integer           result;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;


}
